package persistencia;

import DTOs.RegistroTraduccionDTO;
import Exepciones.ExcepcionesSys.ExcepcionConexionErrorSys;
import Exepciones.ExcepcionesSys.ExcepcionConsultaErrorSys;
import Exepciones.ExcepcionesSys.ExcepcionDeleteErrorSys;
import Exepciones.ExcepcionesSys.ExcepcionInsertErrorSys;
import Exepciones.ExcepcionesSys.ExcepcionUpdateErrorSys;
import java.util.ArrayList;

/**
 * Clase que interactua con una base de datos en particular mapeando
 * objetos de acceso de tipo RegistroTraduccionDAO
 */
public interface RegistroTraduccionDAO {

    public void insertar(String textoOrigen, String idiomaOrigen, String textoDestino, String idiomaDestino) throws ExcepcionConexionErrorSys, ExcepcionInsertErrorSys;

    public void eliminar(String textoOrigen, String idiomaOrigen, String textoDestino, String idiomaDestino) throws ExcepcionConexionErrorSys, ExcepcionDeleteErrorSys;

    public void modificar(String textoOrigen, String idiomaOrigen, String textoDestinoNew, String textoDestinoOld, String idiomaDestino) throws ExcepcionConexionErrorSys, ExcepcionUpdateErrorSys;

    public ArrayList<RegistroTraduccionDTO> buscarTraduccion(String textoOrigen, String idiomaOrigen, String idiomaDestino) throws ExcepcionConsultaErrorSys, ExcepcionConexionErrorSys;

    public ArrayList<RegistroTraduccionDTO> buscarAproximacion(String textoOrigenPrefijo, String idiomaOrigen, String idiomaDestino) throws ExcepcionConsultaErrorSys, ExcepcionConexionErrorSys;
}
